/** @format */
import { parseHtml } from './parser-html.js';
import { generate } from './generate.js';

export function compileToFunction(template) {
  // 1. 解析html字符串为ast语法树
  const root = parseHtml(template);
  // 2. 需要将ast语法树生成最终的render函数， 就是字符串拼接
  const code = generate(root);
  console.log('ast root tree: ', root, code);
  //  所有的模板引擎实现 都需要new Function + with
  let renderFn = new Function(`with(this) { return ${code}}`);

  // vue的render 他返回的是虚拟dom
  return renderFn;
}
